home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
031-040
/
amok31
/
arpfilereq
/
arpfilereq.mod
< prev
next >
Wrap
Text File
|
1993-11-04
|
2KB
|
78 lines
(*---------------------------------------------------------------------------
:Program. ARPFileReq.mod
:Contents. Simple Benutzung des ARP Filerequesters
:Author. Bernd Preusing
:Address. Gerhardstr. 16 D-2200 Elmshorn
:Phone. 04121/22486
:Copyright. Public Domain
:Language. Modula-2
:Translator. M2Amiga V3.2e
:History. V1.0 09-Oct-89 Bernd Preusing
:Imports. ARP library
---------------------------------------------------------------------------*)
IMPLEMENTATION MODULE ARPFileReq;
FROM SYSTEM IMPORT ADR, ADDRESS;
FROM ARP IMPORT FileRequest, FileRequester, FileName, DirName,
FileReqFlags, FileReqFlagSet;
FROM Str IMPORT Copy, LastPos, Length, Concat;
VAR
FR:FileRequester;
File, Dir: ARRAY[0..79] OF CHAR;
(* $R- $V- $F- *)
PROCEDURE GetPath(VAR f,d:ARRAY OF CHAR);
VAR pos,i:INTEGER;
BEGIN
Copy(d,f);
pos:=LastPos(f,-1,'/');
IF pos<0 THEN
pos:=LastPos(f,-1,':');
END;
IF pos>=0 THEN
IF d[pos]=':' THEN d[pos+1]:=0C ELSE d[pos]:=0C END;
INC(pos);
FOR i:=pos TO Length(f) DO
f[i-pos]:=f[i]
END;
f[i]:=0C;
ELSE
d[0]:=0C
END;
END GetPath;
PROCEDURE FileReq(VAR FName:ARRAY OF CHAR; Window:ADDRESS; Title:ARRAY OF CHAR;
flag:BOOLEAN): BOOLEAN;
BEGIN
Copy(File,FName);
GetPath(File,Dir);
FR.hail:=ADR(Title);
IF flag THEN
FR.funcFlags:=FileReqFlagSet{};
ELSE
FR.funcFlags:=FileReqFlagSet{doColor};
END;
FR.ddef := ADR(File);
FR.ddir := ADR(Dir);
FR.wind := Window;
FR.reserved1 := 0;
FR.function := NIL;
FR.reserved2 := 0;
IF FileRequest(ADR(FR))#NIL THEN
IF (Length(Dir)>0) AND (Dir[Length(Dir)-1]#':') THEN
Concat(Dir,'/');
END;
Concat(Dir,File);
Copy(FName,Dir);
RETURN TRUE
ELSE
RETURN FALSE;
END;
END FileReq;
END ARPFileReq.mod